/*
 *   Copyright (C) Key Bridge Global LLC and/or its affiliates.
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package com.keybridgeglobal.wsif.transaction;

import com.keybridgeglobal.wsif.Location;
import com.keybridgeglobal.wsif.Schedule;
import com.keybridgeglobal.wsif.device.TxWsd;
import com.keybridgeglobal.wsif.enumerated.EnumWsifQueryType;
import java.util.Date;
import javax.xml.bind.annotation.*;

/**
 * <p>Java class for whitespaceQuery complex type.
 * <p/>
 * <p>The following schema fragment specifies the expected content contained
 * within this class.
 * <p/>
 * <
 * pre>
 * &lt;complexType name="whitespaceQuery">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element ref="{}txWsd"/>
 *         &lt;element ref="{}location" minOccurs="0"/>
 *         &lt;element ref="{}schedule" minOccurs="0"/>
 *         &lt;element name="extension" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *       &lt;/sequence>
 *       &lt;attribute name="uuid" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       &lt;attribute name="protocolVersion" use="required" type="{http://www.w3.org/2001/XMLSchema}float" />
 *       &lt;attribute name="messageType" use="required" type="{}enumWsifQueryType" />
 *       &lt;attribute name="dateCreated" use="required" type="{http://www.w3.org/2001/XMLSchema}dateTime" />
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * <p/>
 *
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "whitespaceQuery", propOrder = {
  "txWsd",
  "location",
  "schedule",
  "extension"
})
@XmlRootElement
public class WhitespaceQuery {

  @XmlElement(required = true)
  protected TxWsd txWsd;
  protected Location location;
  protected Schedule schedule;
  protected String extension;
  @XmlAttribute(name = "uuid", required = true)
  protected String uuid;
  @XmlAttribute(name = "protocolVersion", required = true)
  protected float protocolVersion;
  @XmlAttribute(name = "messageType", required = true)
  protected EnumWsifQueryType messageType;
  @XmlAttribute(name = "dateCreated", required = true)
  @XmlSchemaType(name = "dateTime")
  protected Date dateCreated;

  /**
   * Gets the value of the txWsd property.
   * <p/>
   * @return possible object is {@link TxWsd }
   *
   */
  public TxWsd getTxWsd() {
    return txWsd;
  }

  /**
   * Sets the value of the txWsd property.
   * <p/>
   * @param value allowed object is {@link TxWsd }
   *
   */
  public void setTxWsd(TxWsd value) {
    this.txWsd = value;
  }

  /**
   * Gets the value of the location property.
   * <p/>
   * @return possible object is {@link Location }
   *
   */
  public Location getLocation() {
    return location;
  }

  /**
   * Sets the value of the location property.
   * <p/>
   * @param value allowed object is {@link Location }
   *
   */
  public void setLocation(Location value) {
    this.location = value;
  }

  /**
   * Gets the value of the schedule property.
   * <p/>
   * @return possible object is {@link Schedule }
   *
   */
  public Schedule getSchedule() {
    return schedule;
  }

  /**
   * Sets the value of the schedule property.
   * <p/>
   * @param value allowed object is {@link Schedule }
   *
   */
  public void setSchedule(Schedule value) {
    this.schedule = value;
  }

  /**
   * Gets the value of the extension property.
   * <p/>
   * @return possible object is {@link String }
   *
   */
  public String getExtension() {
    return extension;
  }

  /**
   * Sets the value of the extension property.
   * <p/>
   * @param value allowed object is {@link String }
   *
   */
  public void setExtension(String value) {
    this.extension = value;
  }

  /**
   * Gets the value of the uuid property.
   * <p/>
   * @return possible object is {@link String }
   *
   */
  public String getUuid() {
    return uuid;
  }

  /**
   * Sets the value of the uuid property.
   * <p/>
   * @param value allowed object is {@link String }
   *
   */
  public void setUuid(String value) {
    this.uuid = value;
  }

  /**
   * Gets the value of the protocolVersion property.
   * <p/>
   */
  public float getProtocolVersion() {
    return protocolVersion;
  }

  /**
   * Sets the value of the protocolVersion property.
   * <p/>
   */
  public void setProtocolVersion(float value) {
    this.protocolVersion = value;
  }

  /**
   * Gets the value of the messageType property.
   * <p/>
   * @return possible object is {@link EnumWsifQueryType }
   *
   */
  public EnumWsifQueryType getMessageType() {
    return messageType;
  }

  /**
   * Sets the value of the messageType property.
   * <p/>
   * @param value allowed object is {@link EnumWsifQueryType }
   *
   */
  public void setMessageType(EnumWsifQueryType value) {
    this.messageType = value;
  }

  /**
   * Gets the value of the dateCreated property.
   * <p/>
   * @return possible object is {@link Date }
   *
   */
  public Date getDateCreated() {
    return dateCreated;
  }

  /**
   * Sets the value of the dateCreated property.
   * <p/>
   * @param value allowed object is {@link Date }
   *
   */
  public void setDateCreated(Date value) {
    this.dateCreated = value;
  }
}
